package com.atguigu.b_udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class ReceiverPlus { //接收端
    public static void main(String[] args) throws IOException {
        //创建接收端对象
        DatagramSocket ds = new DatagramSocket(10086);
        while (true){


            //创建数据接收数据
            byte[] bys = new byte[1024]; //最大写 64 * 1024
            //创建数据包
            //bys : 拿bys数组存接受的数据,bys.length : 整个数组都用来接收数据
            DatagramPacket p = new DatagramPacket(bys,bys.length);

            //接收数据
            ds.receive(p);


            //拆解数据 ->
            InetAddress address = p.getAddress();//发件人的主机名和主机ip
            int length = p.getLength();//真实数据的长度

            //数据存在bys数组中 -> 发的是String -> 接受的是byte[] -转换-> String
            String message = new String(bys,0,length); //发了多少转多少

            System.out.println("发件人地址 : " + address);
            System.out.println("发件信息 : " + message);
            System.out.println("-------------------------------------");

            //关资源 -> 不关
            //ds.close();
        }
    }
}
